終於要進行第一個網頁的製作了,這邊會用到的概念是 view 處理請求的邏輯。當使用者輸入特定 url 時,該 url 配置的 view 便會進行邏輯處理並送出回應給使用者,接下來就來進行實作。
首先啟動虛擬環境,接著到core/views.py
,來創建第一個視圖吧!輸入以下程式碼:
from django.http import HttpResponse
# 定義首頁的函式
def index(request):
return HttpResponse("Hello, world!!!")
接著在core
新增urls.py
檔案,並在裡面輸入:
from django.urls import path
from . import views
# 這邊建議輸入與 app 一樣的名稱
app_name = 'core'
urlpatterns = [
path("", views.index, name="index"),
]
這表示將請求送至此網址時(我的本地端網址為127.0.0.1:8000/
),會用views.py
中的index
功能處理邏輯,而index
會回傳"Hello, world!!!",所以在頁面就會看到這行字。接下來要到app/urls.py
進行設定:
from django.contrib import admin
# 導入 include
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
# 將 app_name 中的 urls 加入
path('', include('core.urls'))
]
最後,執行python manage.py runserver
並進入網站看看成果吧!
Django中 view 的寫法有兩種,一種是以 class 為單位,另一種是以 funtion 為單位(如同上面例子)。在 Django 中提供了一些通用的 CBVs 來實作常見的新增、修改及刪除物件的功能,因為是用 class 編寫,所以 CBVs 可通過繼承來擴展功能,也提高了程式碼重複使用性,實現 DRY(Don't Repeat Yourself) 原則。缺點為可讀性較差、較不好學及若使用裝飾器(decorator)需要導入;相反的,FBVs 的優點為可讀性高,較好學習也較直觀,但缺點為較不易擴展及重複性高(尤其在複雜專案中)。
恭喜成功創建自己的第一個網頁!!!雖然很簡單,但萬丈高樓皆平地起,接下來會先介紹完 app 裡面的其他檔案,再把剩下的網頁完成,預計會做一個簡單的註冊登入頁面。明天見~